package semantic.rules.walk

import scala.collection.mutable.Buffer
import utils.data.CTree
import syntax.{CCategory, CASTNode}

trait CWalkRule
{
    val categories:Seq[CCategory]
    def pre(node:CASTNode)(implicit tree:CTree[CASTNode], code:Buffer[String]) = ()
    def postChild(node:CASTNode, child:CASTNode)(implicit tree:CTree[CASTNode], code:Buffer[String]) = ()
    def preChild(node:CASTNode, child:CASTNode)(implicit tree:CTree[CASTNode], code:Buffer[String]) = ()
    def post(node:CASTNode)(implicit tree:CTree[CASTNode], code:Buffer[String]) = ()
}
